/**
 * Entity实体表单初始化之前的回调函数
 */
var beforeEntityFormInit = function(){
	entityFormFields = getFormFields(3);
};

/**
 * 获取页面字段属性对象
 * @return
	{
	    layout : 'column', // 定义该元素为布局为列布局方式
	    border : false,
	    labelSeparator : '：',
	    items : [{
	                columnWidth : .3, // 该列占用的宽度，标识为50％
	                layout : 'form',
	                border : false,
	                items : [{ // 这里可以为多个Item，表现出来是该列的多行
	                    cls : 'key',
	                    xtype : 'textfield',
	                    fieldLabel : '用户名',
	                    name : 'name',
	                    anchor : '90%'
	                },{ // 这里可以为多个Item，表现出来是该列的多行
	                    cls : 'key',
	                    xtype : 'textfield',
	                    fieldLabel : '学号',
	                    name : 'name',
	                    anchor : '90%'
	                },{ // 这里可以为多个Item，表现出来是该列的多行
	                    cls : 'key',
	                    xtype : 'textfield',
	                    fieldLabel : '班级',
	                    name : 'name',
	                    anchor : '90%'
	                }]
	            }, {
	                columnWidth : .3,
	                layout : 'form',
	                border : false,
	                items : [{
	                            cls : 'key',
	                            xtype : 'textfield',
	                            inputType : 'password',
	                            fieldLabel : '口令',
	                            name : 'passwd',
	                            anchor : '90%'
	                        },{
	                            cls : 'key',
	                            columnWidth : .7,
	                            xtype : 'textfield',
	                            fieldLabel : '测试',
	                            name : 'passwd',
	                            anchor : '90%'
	                        }]
	            },{
	                columnWidth : .4,
	                layout : 'form',
	                border : false,
	                items : [{
	                            cls : 'key',
	                            xtype : 'textfield',
	                            fieldLabel : '住址',
	                            name : 'addr',
	                            anchor : '90%'
	                        }]
	            }]
	}
 */
function getFormFields(rowColNum) {
	var formFieldRows = new Array();
	var entityFields = entity.entityFields;
	var formFieldRow = null;
	var j = 0;
	for(var i=0;i<entityFields.length;i++) {
		var entityField = entityFields[i];
		if(j%rowColNum==0){
			formFieldRow = {
				layout : 'column', // 定义该元素为布局为列布局方式
		   		border : false,
		    	labelSeparator : ':'
		    };
		    formFieldRow.items = new Array();
			formFieldRows.push(formFieldRow);
		}
	    var formFieldCol = {
	    	columnWidth : 1/rowColNum, // 该列占用的宽度，标识为50％
			layout : 'form',
			border : false
		};
		formFieldCol.items = new Array();
		var formField = {
			cls : 'key',
	        xtype : 'textfield',
	        fieldLabel : entityField.nameCn,
	        name : entityField.name,
	        anchor : '90%',
	        allowBlank : entityField.nullable
		};
		if(!entityField.display) {
			formField.xtype = 'hidden';
		} else {
			var fieldFormatter = entityField.formatter;
			if(fieldFormatter != null) {
				//处理特殊的处理器
				if(fieldFormatter.formatterType == "DATE_FORMATTER") {
					formField.xtype = 'datefield';
					formField.format = 'Y-m-d';
				} else if(fieldFormatter.formatterType == "CODE_FORMATTER") {
					var optionUrl = WEB_CONTEXT + '/system/dictOptions?codeTab=';
					var comboOptions = new Ext.data.JsonStore({
				        url:optionUrl + fieldFormatter.codeTab,
				        'fields': ['code','name']
					}); 
					comboOptions.load();
					formField.xtype = 'combo';
					formField.forceSelection = true;
					formField.store = comboOptions;
					formField.valueField = 'code';
					formField.displayField = 'name';
					formField.typeAhead = true;
					formField.mode = 'local';
					formField.triggerAction = 'all';
					formField.selectOnFocus = true;
				}
			}
			j++;
		}
		formFieldCol.items.push(formField);
		formFieldRow.items.push(formFieldCol);
	}
	return formFieldRows;
}

function save(){
	if(entityForm.isValid()) {  
		Ext.MessageBox.wait('正在提交数据...'); 
		entityForm.submit({  
			url: 'entity?action=save&entityId=' + entity.id,
			method: 'POST',
			params : entityForm.getFieldValues(),
			failure: function(form, action){//如果submit失敗，執行這一個function  
				Ext.MessageBox.hide();//这一行是关闭上面的Ext.MessageBox.wait('Passing informatio...  
				if(action.failureType == Ext.form.Action.SERVER_INVALID){
					Ext.MessageBox.alert('错误', '连接失败');
				} else {
					Ext.MessageBox.alert('错误', action.result.msg);//action.result.msg是Server End的PHP echo的JSON格式 Message  
				}
			},
			success: function(form, action){  
				Ext.MessageBox.hide();
				Ext.MessageBox.alert('提示', action.result.msg, function(){
					markUpdate();
					closeExtWin();
				});
			}
		});
	}
}

function update(){
	if(entityForm.isValid()) {  
		Ext.MessageBox.wait('正在更新数据...');
		entityForm.submit({  
			url: 'entity?action=update&entityId=' + entity.id,
			method: 'POST',
			params : entityForm.getFieldValues(),
			failure: function(form, action){//如果submit失敗，執行這一個function  
				Ext.MessageBox.hide();//这一行是关闭上面的Ext.MessageBox.wait('Passing informatio...  
				Ext.MessageBox.alert('提示',action.result.msg);//action.result.msg是Server End的PHP echo的JSON格式 Message  
			},
			success: function(form, action){  
				Ext.MessageBox.hide();
				Ext.MessageBox.alert('提示', action.result.msg, function(){
					markUpdate();
					closeExtWin();
				});
			} 
		});
	}
}

function reset(){
	entityForm.reset();
}